<p>
<code>Throwable.printStackTrace（...）</code>打印一个throwable及其堆栈跟踪到某个流。
</p>

<p>应该使用记录器来打印throwable对象，因为它们具有许多优点：</p>
<ul> <li>用户能够轻松地检索日志。</li>
     <li>日志消息的格式统一，使用户可以轻松浏览日志。</li>
</ul> <p>以下代码：</p>

<pre>
try {
  /* ... */
} catch(Exception e) {
  e.printStackTrace();        // 不合规
}
</pre>

<p>应该重构为:</p>

<pre>
try {
  /* ... */
} catch(Exception e) {
  LOGGER.log("context", e);   // Compliant
}
</pre>
